package br.com.web.dao;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.transaction.annotation.Transactional;

import br.com.web.dominio.Usuario;

@Transactional
public class UsuarioDAOImpl implements UsuarioDAO{

	private EntityManager em;	
	
	@PersistenceContext
    public void setEntityManager(EntityManager em) {
        this.em = em;
    }
	
	//--------------------------------------------------------------
	
	@Override
	public Usuario getUsuario(String login) {
		return em.find(Usuario.class, login);		
	}
	
	@Override
	public Usuario getUsuario(String login, String senha){
		Query query = em.createQuery("select u from Usuario u where " +
								"u.login = :username and u.senha = :password");
		query.setParameter("username", login);
		query.setParameter("password", senha);
		Usuario user = null;
		try{
			user = (Usuario) query.getSingleResult();
		}catch (NoResultException e){
			System.err.println("Autenticacao ("+login+"): "+e.getMessage());
		}
		return (user);
	}
	
	@Override
	public void salvar(Usuario usuario) {	
		em.persist(usuario);
	}

}
